namespace NFit.Core.Interfaces
{
    /// <summary>
    /// Service contract for the execution of a specification
    /// </summary>
    public interface ISpecificationExecution
    {
        /// <summary>
        /// The module that execute the fixtures
        /// </summary>
        IFixtureExecution FixtureExec { get; set; }

        /// <summary>
        /// Run a specification
        /// </summary>
        /// <param name="Context">The execution context</param>
        /// <param name="CurrentSpecification">The specification to run</param>
        /// <returns>true if the specification is successful</returns>
        void Run(IExecutionContext Context, SpecificationDefinition CurrentSpecification);
    }
}